Write unmodified data to controller read cache

ABSTRACT

Disclosed are a method and apparatus, in a data storage environment with multiple devices sharing data, for writing data to one such device in a manner that indicates that the data need not be destaged to a lower tier of the storage hierarchy. As a specific example, a host computer system may issue a write command to a controller that signals the controller that it is not necessary to destage the data from the controller cache because the data has not been modified by the host. In a preferred embodiment, the controller&#39;s cache is an extension of the host&#39;s cache, rather than a duplication. To achieve this, the controller needs to know: 1) what data, being requested by the host, is being cached by the host, and should not be cached by the controller, and 2) what data has been cast out of the host&#39;s cache, and should now be cached by the controller.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention generally relates to hierarchical caching of data, andmore specifically, to caching data in a data storage environment havinga hierarchy of data caches. Even more specifically, in a preferredimplementation, the invention relates to caching data in amultiprocessing system in which a storage controller interfaces betweenmultiple host computer systems and a direct access storage devicesystem.

2. Background Art

A modern shared-storage multiprocessing system may include a pluralityof host processors coupled through several cache buffer levels to ahierarchical data store that includes a random access memory levelfollowed by one or more larger, slower storage levels such as DirectAccess Storage Device (DASD) and tape library subsystems. Transfer ofdata up and down such a multilevel shared-storage hierarchy requiresdata transfer controllers at each level to optimize overall transferefficiency.

In typical disk caching environments, the host uses some of its RAM(FIG. 3 #74 memory) as a cache for disk storage. The host disk cache isfaster to access than disk, but is more expensive per byte, andtherefore has less capacity than disk. The host disk cache may hold bothCPU instructions (typically not modified by the CPU) and data structures(which are sometime, but not always modified by the CPU). If the hostneeds access to instructions or data which are not resident in the hostdisk cache, the host issues a read I/O request to the disk controller.The disk controller services the host read I/O request from the diskcontrollers cache (if the data is resident there) or issues a read I/Orequest (stage) to the disk.

The host CPU may optionally modify the data in host disk cache.

Periodically, data must be removed from the host disk cache (and/orcontroller cache) to make room for other data. If the data to be removedis modified, the host must issue a write I/O request to the diskcontroller to assure the modifications to the data are written to disk.The disk controller must issue a write I/O request (destage) to the diskbefore the data is removed from the controller's cache to make room forother data.

If the data to be removed from cache is unmodified, today the host justreuses the space for other data. This can result in the same data beingcached in both the host computer cache and the controller cache,resulting in a waste of cache space.

SUMMARY OF THE INVENTION

An object of this invention is to improve procedures for caching data ina hierarchical caching environment.

Another object of the invention is to minimize the duplication of datain both the host and disk controller's cache, and to minimize the needto restage data from disk.

A further object of the present invention is, in a large distributedcomputer system, in which a storage controller interfaces betweenmultiple host computer systems and a direct access storage devicesystem, to use the controller's cache as an extension, rather than aduplication, of the host's cache.

These and other objectives are attained with a method and apparatus, ina data storage environment with multiple devices sharing data, forwriting data to one such device in a manner that indicates that the dataneed not be destaged to a lower tier of the storage hierarchy. By way ofa specific example, a host computer system may issue a write command toa controller that signals the controller that it is not necessary todestage the data from the controller cache because the data has not beenmodified by the host.

In the preferred embodiment of the invention, described in detail below,the controller's cache is an extension of the host's cache, rather thana duplication. To achieve this, the controller needs to know:

-   -   1. what data, being requested by the host, is being cached by        the host, and should not be cached by the controller, and    -   2. what data has been cast out of the host's cache, and should        now be cached by the controller.

To accomplish this, the preferred embodiment of the invention provides anew write command (from host to controller) which is issued when data iscast out of the host's cache. With the invention, if the data to beremoved is unmodified, the host may issue the new write I/O request tothe disk controller (1) passing the data being removed from the hostdisk cache, to the controllers cache, and (2) indicating the data isunmodified and need not be updated on disk. The disk controller need notissue a write I/O request (destage) to the disk when the data is removedfrom the controller's cache to make room for other data. The command(without the data transfer) could optionally be used to request aprestage of the data by the controller.

Further benefits and advantages of the invention will become apparentfrom a consideration of the following detailed description, given withreference to the accompanying drawings, which specify and show preferredembodiments of the invention

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a software and hardwareenvironment in which preferred embodiments of the invention may beimplemented.

FIG. 2 is a functional block diagram of the storage controller of theenvironment of FIG. 1.

FIG. 3 is a block diagram of a computer system that may be used in theenvironment of FIG. 1.

FIGS. 4 and 5 are flow charts illustrating the operation of two writecommands that may be issued in the practice of this invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates a hardware environment in which preferred embodimentsmay be implemented. A plurality of host systems 4 a, b, c are in datacommunication with a DASD 6 via a storage controller 8. The host systems4 a, b, c may be any host systems known in the art, such as a mainframecomputer, workstations, etc. A plurality of channel paths 10 a, b, c inthe host systems 4 a, b, c provide communication paths to the storagecontroller 8. The storage controller 8 issues command to physicallyposition the electromechanical devices to read the DASD 6.

The storage controller 8 further includes a cache 12. In alternativeembodiments, the cache 12 may be implemented in other storage areasaccessible to the storage controller 8. In preferred embodiments, thecache 12 is implemented in a high speed, volatile storage area withinthe storage controller 8, such as a DRAM, RAM etc. The length of timesince the last use of a record in cache 12 is maintained to determinethe frequency of use of the cache. Data can be transferred between thechannels 10 a, b, c and the cache 12, between the channels 10,a, b, cand the DASD 6, and between the DASD 6 and the cache 12.

Also included in the storage controller 8 is a non-volatile storage(NVS) unit 14, which in preferred embodiments is a battery backed-upRAM, that stores a copy of modified data maintained in the cache 12. Inthis way, if failure occurs and the modified data in cache 12 is lost,then the modified data may be recovered from the NVS unit 14.

FIG. 2 shows storage controller 8 in more detail. Storage controller 8includes two storage clusters 32 and 34, each of which provides forselective connection between a host computer and a logical DASD. Bothstorage clusters 32 and 34 are coupled to some or all of the hostcomputers through the host channels, and, thus, every host computersystem has access to any of the logical DASDs for storage and retrievalof data. Storage controller 8 may receive a request from a host computerover one host channel and respond to the request over the same or anyother one of the host channels connected to the same host computer.

The four data paths 30, 36, 38 and 40 couple storage controller 8 to theDASD 8. Each data path 30, 36-40 is associated with a single dedicatedstorage path processor 42-48, respectively. Each data path 30, 36-40 iscoupled to all logical storage elements of the DASD 8 but only one suchdata path has access to a particular logical store at any instant.

In addition to storage clusters 32 and 34, storage controller 8 includesa controller cache memory (CCM) 50 and a nonvolative store 52. CCM 50provides storage for frequently accessed data and buffering to providebalanced response times for cache writes and cache reads. Nonvolatilestore 52 provides temporary storage of data being written to CCM 50until destaged to permanent storage in DASD 8.

Storage clusters 32 and 34 provide identical functional features, whichare now described in connection with storage cluster 32 alone. Storagecluster 32 includes a multipath storage director 54 that operates as afour or eight by two switch between the host channels and signal pathprocessors 46-48. Storage cluster 32 also includes a shared controlarray 56 that duplicates the contents of the shared control array 58 instorage cluster 34. Shared control arrays 56-58 store path groupinformation and control blocks for the logical DASDs and may alsoinclude some of the data structures used to control CCM 50.

FIG. 3 shows, as an example, one host computer that may be used in theenvironment of FIG. 1. In this regard, the computer system 60 may be anyof a variety of computing systems, such as a high-end desktop computingsystem having a computer 62 and monitor 64. Although the computer 62 maycome in a variety of forms, a typical computer 62 will include amotherboard 66. As is known, the motherboard 66 typically includesvarious on-board integrated circuit components 70. These on-boardintegrated circuit components 70 may include devices like a CPU 72(e.g., a microprocessor), a memory 74, and a variety of other integratedcircuit devices known and included in computer architectures.

Another integrated circuit device, whether located on the motherboard orlocated on a plug-in card, is a cache memory 76. The cache memory 76 isdisposed in communication with a PCI bus 80. A variety of other circuitcomponents may be included within the computer system 60 as well.Indeed, a variety of other support circuits and additional functionalcircuitry are typically included in most high-performance computingsystems. The addition and implementation of other such circuitcomponents will be readily understood by persons of ordinary skill inthe art, and need not be described herein. Instead, the computing system60 has been shown with only a select few components in order to betterillustrate the concepts and teachings of the present invention.

As is further known, in addition to various onboard circuit components,computing systems usually include expansive capability. In this regard,most computing systems 60 include a plurality of expansion slots 82, 84,86, which allow integrated circuit cards 88 to be plugged into themotherboard 66 of computing system 60.

The above-describes environment thus has a multiple cache hierarchy,comprised of the storage controller cache and the host computers' caches74 and 76. In particular, the host's CPU cache 76 adds yet another levelto the hierarchical caching environment (i.e. disk 6, controller cache12 or 50, host disk cache (in memory 74), CPU cache 76, CPU 72). The CPUcache is faster to access than memory, but is more expensive per byte,and therefore has less capacity than memory. This multiple cachehierarchy presents novel challenges and opportunities, and inparticular, this can result in the same data being cached in both thecontroller and a host computer, resulting in a waste of cache space.

The present invention addresses this challenge. Generally, this is doneby making the controller's cache an extension of the host's cache,rather than a duplication. To achieve this, the controller needs toknow:

-   -   1. what data, being requested by the host, is being cached by        the host, and should not be cached by the controller, and    -   2. what data has been cast out of the host's cache, and should        now be cached by the controller.

More specifically, with reference to FIG. 4, the invention preferablyprovides a new write command, represented at 92, (from host tocontroller) which is issued when unmodified data is cast out of thehost's cache. This command would pass the data which has been cast outof the host's cache to the controller's cache without requiring a diskoperation. A new command is required, in order to signal the controllerthat the data being written matches the data on disk and no destage isrequired when the data is cast out of the controller's cache. Asrepresented in FIG. 5 at 94, the command (without the data transfer)could optionally be used to request a prestage of the data by thecontroller.

In addition, an analogous new write (from CPU cache to memory) can beimplemented to move unmodified data from the CPU cache to memory, wherethe memory retains an “unmodified” state.

The advantage is lower in this case since the CPU cache is typicallymuch smaller than memory. The controller cache is also typically muchsmaller than disk. However, the host disk cache and the controller cacheare typically similar in size, therefore, using the controller cache asextensions to the host disk cache (eliminating the duplicates) cannearly double the effective composite size.

While it is apparent that the invention herein disclosed is wellcalculated to fulfill the objects stated above, it will be appreciatedthat numerous modifications and embodiments may be devised by thoseskilled in the art, and it is intended that the appended claims coverall such modifications and embodiments as fall within the true spiritand scope of the present invention

1. A method of managing data in a hierarchical caching environment,having a first cache at a first level of a hierarchy and a second cacheat a second level of the hierarchy, the method comprising the steps:removing data from the first cache; and transmitting a command to thesecond level of the hierarchy, said command identifying the removed dataand signaling that the data does not need to be destaged from the secondlevel of the hierarchy to a third level of the hierarchy.
 2. A methodaccording to claim 1, wherein the command signals that the removed datamatches data in the third level of the hierarchy.
 3. A method accordingto claim 1, wherein the command includes the removed data.
 4. Ahierarchical data caching system, comprising: a first cache at a firsthierarchical level; a second cache at a second hierarchical level; andmeans for removing data from the first cache, and for transmitting acommand to the second level of the hierarchy, said command identifyingthe removed data and signaling that the data does not need to bedestaged from the second level of the hierarchy to a third level of thehierarchy.
 5. A system according to claim 4, wherein the command signalsthat the removed data matches data in the third level of the hierarchy.6. A system according to claim 4, wherein the command includes theremoved data.
 7. A method of managing data in a multi computerenvironment including multiple host computer systems, a direct accessstorage device system, and a storage controller for interfacing betweenthe host computer systems and the direct access storage device system,the storage controller including a controller cache, and each of thehost computer systems including a host cache, the method comprising:removing data from the cache of one of the host computer systems; andsaid one of the host computer systems transmitting a command to thecontroller, said command identifying the removed data, and signalingthat the controller does not need to destage the data to the storagedevices system.
 8. A method according to claim 7, including the furtherstep of the controller writing the data into the controller cache.
 9. Amethod according to claim 7, wherein the command signals that the datamatches data in the storage devices system.
 10. A method according toclaim 7, wherein the command includes the removed data.
 11. A methodaccording to claim 7, wherein the transmitting step includes the step ofsaid one of the hosts transmitting the command to the controller whenthe data is removed from the cache of said one of the hosts.
 12. A datamanagement system for managing data in a multi computer environmentincluding multiple host computer systems, a direct access storagedevices system, and a storage controller for interfacing between thehost computer systems and the direct access storage devices system, thestorage controller including a controller cache, and each of the hostcomputer systems including a host cache, the data management systemcomprising: means for removing data from the cache of one of the hostcomputer systems; and means for transmitting a command to thecontroller, said command identifying the removed data, and signalingthat the controller does not need to destage the data to the storagedevices system.
 13. A data management system according to claim 12,wherein the command signals that the data matches data in the storagedevices system.
 14. A data management system according to claim 12,wherein the command includes the removed data.
 15. A data managementsystem according to claim 12, wherein the means for transmittingincludes means for transmitting the command to the controller inresponse to the data being removed from the cache of said one of thehosts.
 16. A program storage device readable by machine, tangiblyembodying a program of instructions executable by the machine to performmethod steps for managing data in a multi computer environment includingmultiple host computer systems, a direct access storage device system,and a storage controller for interfacing between the host computersystems and the direct access storage device system, the storagecontroller including a controller cache, and each of the host computersystems including a host cache, the method steps comprising: removingdata from the cache of one of the host computer systems; and said one ofthe host computer systems transmitting a command to the controller, saidcommand identifying the removed data, and signaling that the controllerdoes not need to destage the data to the storage devices system.
 17. Aprogram storage device according to claim 16, wherein said method stepsinclude the further step of the controller writing the data into thecontroller cache.
 18. A program storage device according to claim 16,wherein the command signals that the data matches data in the storagedevices system.
 19. A program storage device according to claim 16,wherein the command includes the removed data.
 20. A method of managingdata in a multi computer environment including multiple host computersystems, a direct access storage device system, and a storage controllerfor interfacing between the host computer systems and the direct accessstorage device system, the storage controller including a controllercache, and each of the host computer systems including a host cache, themethod comprising: removing data from the cache of one of the hostcomputer systems; and said one of the host computer systems transmittinga command to the controller, said command identifying the removed data,and requesting a pre stage of the data by the controller.
 21. A methodaccording to claim 20, wherein the transmitting step includes the stepof said one of the host computer systems transmitting the command to thecontroller when the data is removed from the cache of said one of thehost computer systems.
 22. A data management system for managing data ina multi computer environment including multiple host computer systems, adirect access storage device system, and a storage controller forinterfacing between the host computer systems and the direct accessstorage device system, the storage controller including a controllercache, and each of the host computer systems including a host cache, thedata management system comprising: means for removing data from thecache of one of the host computer systems; and means for transmitting acommand to the controller, said command identifying the removed data,and requesting a pre stage of the data by the controller.
 23. A datamanagement system according to claim 22, wherein the transmitting meansincludes means for transmitting the command to the controller when thedata is removed from the cache of said one of the host computer systems.24. A data management system according to claim 22, wherein thetransmitting means includes means for transmitting the command to thecontroller in response to the data being removed from the cache of saidone of the host computer systems.
 25. A method for managing data in adata storage environment with multiple devices sharing data in a storagehierarchy, the method comprising: writing data from a first of thedevices to a second of the devices; and indicating that the data neednot be destaged by the second of the devices to a lower tier of thestorage hierarchy.
 26. A method according to claim 25, furthercomprising the step of removing the data from the first of the devices,and wherein the indicating step includes the step of indicating to thesecond of the devices, when the data is removed from the first of thedevices, that the data need not be destaged to said lower tier.
 27. Amethod according to claim 25, further comprising the step of removingthe data from the first of the devices, and wherein the indicating stepincludes the step of indicating to the second of the devices, inresponse to the data being removed from the first of the devices, thatthe data need not be destaged to said lower tier.
 28. A data managementsystem for managing data in a data storage environment with multipledevices sharing data in a storage hierarchy, the data management systemcomprising: means for writing data from a first of the devices to asecond of the devices; and means for indicating that the data need notbe destaged by the second of the devices to a lower tier of the storagehierarchy.
 29. A data management system according to claim 28, furthercomprising means for removing the data from the first of the devices,and wherein the means for indicating includes means for indicating tothe second of the devices, when the data is removed from the first ofthe devices, that the data need not be destaged to said lower tier.